Rant follows.
I have upgraded my PC to squeeze this weekend. While this generally worked
fine, udev (version 160-1) made my day. As usual I had not read the release
notes previously and was hit by
Please upgrade your kernel before or while upgrading udev.
AT YOUR OWN RISK, you can force the installation of this version of udev
WHICH DOES NOT WORK WITH YOUR RUNNING KERNEL AND WILL BREAK YOUR SYSTEM
dpkg to the rescue:
dpkg -i /var/cache/apt/archives/linux-base_2.6.32-21_all.deb
dpkg -i /var/cache/apt/archives/linux-image-2.6.32-5-amd64_2.6.32-21_i386.deb /var/cache/apt/archives/linux-image-2.6-amd64_2.6.32+28_i386.deb
reboot
Afterwards the upgrade succeded. (For reference: The correct solution would
probably have been to run apt-get install linux-image-2.6-amd64 and
rebooting, before starting the dist-upgrade.)
udev was not finished with me, though, the syntax for udev rules has changed
again. ("NAME="%k" is ignored, because it breaks kernel supplied names",
"SYSFS = will be removed in a future udev version, please use ATTR =",
"BUS= will be removed in a future udev version, please use SUBSYSTEM=",
etc.) So I started googling and rewriting my custom rules for USB-sticks and
USB cardreader. After many reboots (the only way to test these rules
nowadays),
thing were still not working.
My cardreader is not an exotic but a common one, i.e. it does not report
media changes. (The
guide for writing udev rules
shares this opinion.) Previously I had:
BUS=="scsi", KERNEL=="sd*", SYSFS model =="Compact Flash",SYSFS vendor =="Generic-",NAME all_partitions ="cardreader/cf"
which caused udev to generate /dev/cardreader/cf1, /dev/cardreader/cf2, etc.
on bootup (without media present), enabling me to configure /etc/fstab to
allow mounting of /dev/cardreader/cf1 without superuser privileges. After
googling I ended up with this new rule:
SUBSYSTEMS=="scsi", KERNEL=="sd*", DRIVERS=="sd", ATTRS vendor =="Generic-", ATTRS model =="SD/MMC ", SYMLINK+="cardreader/sd%n", OPTIONS+="all_partitions"
and while I get ...
argenau:~# ls -l /dev/cardreader/sd
lrwxrwxrwx 1 root root 6 Sep 19 14:42 /dev/cardreader/sd -> ../sdd
... there is still no /dev/cardreader/sd1 (unless I insert a card and run
fdisk -l /dev/cardreader/sd as superuser). Looks like
OPTIONS+="all_partitions" is ignored. And indeed I find this in udev's
changelog:
udev 152
[...]
The option "all_partitions" was removed from udev. This should not be
needed for usual hardware. Udev can not safely make assumptions
about non-existing partition major/minor numbers, and therefore no
longer provide this unreliable and unsafe option.
Joy. Thanks udev for telling me consumer devices have been fixed overnight,
USB cardreaders have suddenly started reporting media change events.